
/*
 * Desenvolvimento para WEB
 * 
 * NOME: Vitor Augusto Graciani           RA: 345270
 * NOME: Felipe Petruz Brina              RA: 345083
 * NOME: Diego Zamboni Latance            RA: 344990
 * NOME: Rafael Claudio Domene            RA: 345040
 * NOME: Vinicius Rodrigues de Campos     RA: 345350
 * 
 */


package controle;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import model.*;


public class RecebeDadosAlteracao extends HttpServlet {

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        String TipoAlteracao = request.getParameter("acaoAltera");
        //String TipoRemove = request.getParameter("acaoRemove");

        if (TipoAlteracao.compareTo("alteraEntidade") == 0) {
            String displayName = request.getParameter("displaynameEnt");
            String wikikeys = request.getParameter("wikikeysEnt");
            String categorias = request.getParameter("dominioEnt");
            String tipos = request.getParameter("tipoEnt");
            String descricao = request.getParameter("descricaoEnt");
            try {
                alterarDadosBuscaEntidadeAbsoluta(request, response, displayName, wikikeys, categorias, tipos, descricao);
            } catch (DAOException ex) {
                Logger.getLogger(RecebeDadosAlteracao.class.getName()).log(Level.SEVERE, null, ex);
            }
        }

        if (TipoAlteracao.compareTo("alteraCategoria") == 0) {
            String categoria = request.getParameter("nomeCat");
            int cid = Integer.parseInt(request.getParameter("cid"));
            try {
                alterarDadosBuscaCategoria(request, response, categoria, cid);
            } catch (DAOException ex) {
                Logger.getLogger(RecebeDadosAlteracao.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
        
        if(TipoAlteracao.compareTo("alteraTipo") == 0){
            String tipo = request.getParameter("idTipo");
            try {
                alterarDadosBuscaTipo(request, response, tipo);
            } catch (DAOException ex) {
                Logger.getLogger(RecebeDadosAlteracao.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
        
        if(TipoAlteracao.compareTo("removeTipo") == 0){
            
            String tipo = request.getParameter("idTipo");            
            removeTipo(request, response, tipo);
        }
        
        if(TipoAlteracao.compareTo("removeCategoria") == 0){
            
            //String categoria = request.getParameter("nomeCat");
            int cid = Integer.parseInt(request.getParameter("cid"));
            removeCategoria(request, response, cid);
        }
        
        if(TipoAlteracao.compareTo("removeEntidade") == 0){
            
            int mid = Integer.parseInt(request.getParameter("mid"));
            
           removeEntidade(request, response, mid);
        }

    }

    private void alterarDadosBuscaEntidadeAbsoluta(HttpServletRequest request, HttpServletResponse response,
            String displayName, String wikikeys, String categorias, String tipos, String descricao) throws DAOException, IOException {

        EntidadeBEAN alteraEntidade = new EntidadeBEAN();
 
        alteraEntidade.setDescricao(descricao);
        alteraEntidade.setDisplayName(displayName);

        alteraEntidade.setWikikeys(wikikeys);
        try {
            ConsultaEntidadeAbsolutaDAO alteraEntidadeDAO = new ConsultaEntidadeAbsolutaDAO();
            alteraEntidadeDAO.alteraEntidade(alteraEntidade);
            response.sendRedirect("consultaEntidade.jsp");
        } catch (DAOException e) {
            //REVER! ****************************************************************************************************
            e.printStackTrace();
        }
    }

    private void alterarDadosBuscaCategoria(HttpServletRequest request, 
            HttpServletResponse response, String categoria, int cid) throws IOException, DAOException {
        
        ConsultaCategoriaBEAN alteraCategoria = new ConsultaCategoriaBEAN();
        alteraCategoria.setCategoria(categoria);
        alteraCategoria.setCid(cid);

        try {
            ConsultaCategoriaDAO alteraCategoriaDAO = new ConsultaCategoriaDAO();
            alteraCategoriaDAO.alteraCategoria(alteraCategoria);
            response.sendRedirect("consultaCategoria.jsp");
        } catch (DAOException e) {
            //REVER!!! ****************************************************************************************************
            e.printStackTrace();
        }
    }

    private void alterarDadosBuscaTipo(HttpServletRequest request, HttpServletResponse response, String tipo) throws DAOException, IOException {
        
        ConsultaTipoBEAN alteraTipo = new ConsultaTipoBEAN();
        alteraTipo.setTipo(tipo);
        
        try{
            ConsultaTipoDAO alteraTipoDAO = new ConsultaTipoDAO();
            alteraTipoDAO.alteraTipo(alteraTipo);
            response.sendRedirect("consultaTipo.jsp");
        } catch(DAOException e){
            //REVERR!!!!****************************************************************************************************
            e.printStackTrace();
        }
    }

    private void removeTipo(HttpServletRequest request, HttpServletResponse response, String tipo) throws IOException {
        
        ConsultaTipoBEAN removeTipo = new ConsultaTipoBEAN();
        removeTipo.setTipo(tipo);
        
        try{
            ConsultaTipoDAO removeTipoDAO = new ConsultaTipoDAO();
            removeTipoDAO.removeTipo(removeTipo);
            response.sendRedirect("index.jsp");
        } catch(DAOException e){
            //REVERR!!!****************************************************************************************************
            e.printStackTrace();
        }
    }

    private void removeCategoria(HttpServletRequest request, HttpServletResponse response, int cid) throws IOException {
        
        ConsultaCategoriaBEAN removeCategoria = new ConsultaCategoriaBEAN();
        removeCategoria.setCid(cid);
        
        try{
            ConsultaCategoriaDAO removeCategoriaDAO = new ConsultaCategoriaDAO();
            removeCategoriaDAO.removeCategoria(removeCategoria);
            response.sendRedirect("consultaCategoria.jsp");  
        } catch(DAOException e){
            //REVER!!!****************************************************************************************************
            e.printStackTrace();
        }
    }

    private void removeEntidade(HttpServletRequest request, HttpServletResponse response, int mid) throws IOException {
        
       
        try{
            ConsultaEntidadeAbsolutaDAO removeEntidadeDAO = new ConsultaEntidadeAbsolutaDAO();
            removeEntidadeDAO.removeEntidade(mid);
            response.sendRedirect("index.jsp");
        } catch(DAOException e){
            //REVERR!!!****************************************************************************************************
            e.printStackTrace();
        }
    }
    
    
}
